home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / CMCD0305.ISO / Software / Shareware / Utilitare / emu / Emu8086_Setup_307c.exe / {app} / Samples / palindrome.asm < prev    next >
Assembly Source File  |  2002-11-28  |  581b  |  43 lines

  1. ; This sample checks if string
  2. ; is a palindrome.
  3.  
  4. #make_COM#
  5.  
  6. ORG 100h
  7.  
  8. jmp start
  9.  
  10. s DB 'aaabbbaaa'
  11. s_size DW 9
  12.  
  13. start:
  14.  
  15. LEA DI, s
  16. MOV SI, DI
  17. ADD SI, s_size
  18. DEC SI  ; point to last char!
  19.  
  20. MOV CX, s_size
  21. SHR CX, 1     ; divide by 2!
  22.  
  23. next_char:
  24.     MOV AL, [DI]
  25.     MOV BL, [SI]
  26.     CMP AL, BL
  27.     JNE not_Palindrome
  28.     INC DI
  29.     DEC SI
  30. LOOP next_char
  31.  
  32.  
  33. is_Palindrome:  
  34.    ;  Set AX to 0FFFFh - the string is "Palindrome!"
  35.    MOV AX, 0FFFFh
  36. JMP stop
  37.  
  38. not_Palindrome:
  39.    ;  Set AX to 0ABCDh  - the string is "Not Palindrome!"
  40.    MOV AX, 0ABCDh 
  41. stop:
  42.  
  43. RET